
package client_package;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.TreeMap;

import javax.swing.JButton;
import javax.swing.JTextField;




public class VueModificationInfo extends VueInscription {

	private static final long serialVersionUID = 1L;
	private JTextField textFieldlanguematernelle;
	private String login="";
	private String nom = "";
	private String prenom = "";
	private String sexe = "";
	private String langueMaternelle = "";
	String type ="";
	private TreeMap<String,String> languesParlees =new TreeMap<String, String>();
	private TreeMap<String,String> languesSelectionne = new TreeMap<String,String>();

	
	
	
	public VueModificationInfo(Controleur c) {
		super(c);
		Statement st=null; 
		ResultSet rs =null;
		try {
			st = getControleur().getCn().createStatement();
			
			String sql = "SELECT * FROM Compte WHERE login='" + getControleur().getLogin() + "'";
			//System.out.println(sql);
			rs = st.executeQuery(sql);
			rs.next();
			login = rs.getString("login");
			//System.out.println("login : "+login);
			nom = rs.getString("nom");
			//System.out.println("nom : "+nom );
			prenom = rs.getString("prenom");
			//System.out.println("prenom : "+prenom );
			sexe = rs.getString("sexe");
			//System.out.println("sexe : "+sexe );
			type = rs.getString("type");
			//System.out.println("type : "+type );
			langueMaternelle = rs.getString("nationalite");
			//System.out.println("nationalite : "+langueMaternelle);

			if (!type.equals("Locuteur"))
			{
				getRdbtnInterprete().setSelected(true);
				sql = "SELECT * FROM `LanguesParlees` where `login`= '" + getControleur().getLogin()+ "'";
				//System.out.println(sql);

				rs = st.executeQuery(sql);

				while (rs.next()) {
					String langue = rs.getString("langue");
					//System.out.println("langue : "+langue);
					languesParlees.put(langue, langue);
				}
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		getTextFieldnom().setText(nom);
		getTextFieldprenom().setText(prenom);
		
		if (sexe.equals("Femme"))
		{
			getRdbtnHomme().setSelected(false);
			getRdbtnFemme().setSelected(true);
		}else{
			getRdbtnHomme().setSelected(true);
			getRdbtnFemme().setSelected(false);		}
		
		getTextFieldLogin().setEditable(false);
		getTextFieldLogin().setText(getControleur().getLogin());
		
		getContentPane().remove(getScrollPaneLangueMaternelle());
		getTextFieldnom().setEditable(false);
		getTextFieldprenom().setEditable(false);
		getRdbtnFemme().setEnabled(false);
		getRdbtnHomme().setEnabled(false);
		
		textFieldlanguematernelle = new JTextField();
		textFieldlanguematernelle.setBounds(200, 302, 168, 23);
		contentPane.add(textFieldlanguematernelle);
		textFieldlanguematernelle.setColumns(10);

		textFieldlanguematernelle.setText(langueMaternelle);
		textFieldlanguematernelle.setEditable(false);
		getModelLangues().removeAllElements();
		for(String s : getLangues().values()) {
			getModelLangues().addElement(s);	
		}
		getModelLangues().removeElement(langueMaternelle);
		if (!type.equals("Locuteur"))
		{
			getListLanguesParlees().setEnabled(true);
			for(String s : languesParlees.values()) {
				getListLanguesParlees().setSelectedValue(s, false);
			}
		}
		
		getScrollPaneLanguesParlees().setBounds(200, 337, 168, 98);
		getLblLanguesParles().setBounds(0, 339, 200, 15);
		getBtnInscription().setBounds(236, 469, 132, 25);
		getBtnAnnuler().setBounds(66, 469, 107, 25);
		setBounds(100, 100, 438, 562);
		
		//getBtnInscription().setText("Modifier");
		//getBtnInscription().removeAll();
		getContentPane().remove(getBtnInscription());
		JButton btnModif = new JButton("Modifier");
		btnModif.setBounds(236, 469, 132, 25);
		btnModif.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				char[] mdp = getPasswordField().getPassword();
				type = "Locuteur";
				if(getRdbtnInterprete().isSelected())
					type = "Interprete";
				// languePar=null;

				if (type.equals("Interprete"))
				{
					int[] languePar = getListLanguesParlees().getSelectedIndices();			
					for (int i=0;i < languePar.length ;i++)
					{ 
						String valeurLangue= (String) getModelLangues().getElementAt(languePar[i]);
						languesSelectionne.put(valeurLangue, valeurLangue);
					}
				}
				getControleur().modifier(login, mdp,nom,prenom,sexe,type,langueMaternelle,languesSelectionne);
				
			}
			
		});
		getContentPane().add(btnModif);
		
		
		getContentPane().remove(getBtnAnnuler());
		JButton btnAnnul = new JButton("Annuler");
		btnAnnul.setBounds(66, 469, 107, 25);
		btnAnnul.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getControleur().getOut().println("annuler");
				getControleur().getOut().flush();
				getControleur().fermerVue(VueModificationInfo.this);
			}
			
		});
		getContentPane().add(btnAnnul);
		
		
		
	}
	
}
